<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Snap Draggable - jQuery EasyUI Demo</title>
	<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
	<link rel="stylesheet" type="text/css" href="../demo.css">
	<script type="text/javascript" src="../../jquery.min.js"></script>
	<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
</head>
<body>
<h2>Snap Draggable</h2>
<p>This sample shows how to snap a draggable object to a 20x20 grid.</p>
<div style="margin:20px 0;"></div>
<div class="easyui-panel" style="position:relative;overflow:hidden;width:500px;height:300px">
	<div class="easyui-draggable" data-options="onDrag:onDrag"
	     style="width:100px;height:100px;background:#fafafa;border:1px solid #ccc;">
	</div>
</div>
<script>
	function onDrag(e) {
		var d = e.data;
		d.left = repair(d.left);
		d.top = repair(d.top);

		function repair(v) {
			var r = parseInt(v / 20) * 20;
			if (Math.abs(v % 20) > 10) {
				r += v > 0 ? 20 : -20;
			}
			return r;
		}
	}
</script>

</body>
</html>